package models

import (
	"gorm.io/gorm"
)

// 聊天会话
type ChatSession struct {
	gorm.Model
	UserID      uint          `json:"user_id"`
	Type        string        `json:"type"` // customer_service, group
	LastMessage string        `json:"last_message"`
	UnreadCount int           `json:"unread_count"`
	User        User          `gorm:"foreignKey:UserID"`
	Messages    []ChatMessage `gorm:"foreignKey:SessionID"`
}

// 聊天消息
type ChatMessage struct {
	gorm.Model
	SessionID  uint        `json:"session_id"`
	SenderID   uint        `json:"sender_id"`
	SenderType string      `json:"sender_type" gorm:"type:enum('user','admin','ai');default:'user'"` // 发送者类型：用户、管理员、AI
	Content    string      `json:"content"`
	Type       string      `json:"type"`   // text, image
	Status     string      `json:"status"` // sent, delivered, read
	Session    ChatSession `gorm:"foreignKey:SessionID;references:ID"`
}

// 系统通知
type Notification struct {
	gorm.Model
	UserID     uint   `gorm:"not null;index"`
	User       User   `gorm:"foreignKey:UserID"`
	Title      string `gorm:"not null"`
	Content    string `gorm:"not null"`
	Type       string `gorm:"not null"` // system, promotion
	Status     string `gorm:"not null"` // unread, read
	ActionType string // 可选的操作类型
	ActionData string // 操作相关的数据（JSON格式）
}
